package com.eedi.framework.protocol.service;


import com.eedi.framework.common.enums.CommonStatusEnum;
import com.eedi.framework.common.pojo.PageResult;
import com.eedi.framework.common.validation.AddGroup;
import com.eedi.framework.common.validation.UpdateGroup;
import com.eedi.framework.protocol.controller.sys.vo.SysProtocolPageReq;
import com.eedi.framework.protocol.controller.sys.vo.SysProtocolSaveReq;
import com.eedi.framework.protocol.dal.dataobject.ProtocolDO;
import org.springframework.validation.annotation.Validated;



/**
 * 协议配置 Service 接口
 *
 * @author 永聚长青源码
 */
public interface SysProtocolService {

    /**
     * 创建协议配置
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    String createProtocol(@Validated({AddGroup.class}) SysProtocolSaveReq createReqVO);

    /**
     * 更新协议配置
     *
     * @param updateReqVO 更新信息
     */
    void updateProtocol(@Validated({UpdateGroup.class}) SysProtocolSaveReq updateReqVO);

    /**
     * 删除协议配置
     *
     * @param systemProtocolId 编号
     */
    void deleteProtocol(String systemProtocolId);

    /**
     * 获得协议配置
     *
     * @param systemProtocolId 编号
     * @return 协议配置
     */
    ProtocolDO getProtocol(String systemProtocolId);

    /**
     * 修改协议配置状态
     * @param systemProtocolId
     * @param status
     */
    void updateProtocolStatus(String systemProtocolId, CommonStatusEnum status);

    /**
     * 获得协议配置分页
     *
     * @param pageReqVO 分页查询
     * @return 协议配置分页
     */
    PageResult<ProtocolDO> getProtocolPage(SysProtocolPageReq pageReqVO);

}
